﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace Battleship
{
    class myPait
    {
        public void line(PaintEventArgs e)//Прорисовка поля
        {
            int x1/*, x2*/, y1, y2, x3, y3, x4, y4;
            x3 = x1 = 0;
            x4 /*= x2*/ = 200;
            y3 = y1 = 0;
            y4 = y2 = 200;

            for (int i = 0; i <= 10; i++)//вертикальные линии
            {
                Graphics gr = e.Graphics;
                Pen p = new Pen(Color.Black, 1);// цвет линии и ширина
                gr.DrawLine(p, x1, y1, x1, y2);
                x1 = x1 + 20;
            }
            for (int i = 0; i <= 10; i++)//горизонтальные линии
            {
                Graphics gr = e.Graphics;
                Pen p = new Pen(Color.Black, 1);// цвет линии и ширина
                gr.DrawLine(p, x3, y3, x4, y3);
                y3 = y3 + 20;
            }
        }

        public int paintRectMy(PaintEventArgs e, int x, int y)//Прорисовка моих кораблей и возвращает № элемента строки, котроытй будет кораблем
        {
            int num;
            Graphics gr = e.Graphics;
            Brush br = Brushes.Blue;
            int drawX = x / 20;
            int drawY = y / 20;
            num = drawY * 10 + drawX;
            gr.FillRectangle(br, drawX * 20 + 1, drawY * 20 + 1, 19, 19);
            return num;
        }
        
        public void paintRectMyNull(PaintEventArgs e, int x, int y)//При повторном нажатии по клетке для отмены прорисовки
        {
            int num;
            Graphics gr = e.Graphics;
            Brush br = new SolidBrush(SystemColors.Control);
            int drawX = x / 20;
            int drawY = y / 20;
            num = drawY * 10 + drawX;
            gr.FillRectangle(br, drawX * 20+1, drawY * 20+1, 19, 19);
        }
        
        public void paintShot(PaintEventArgs e, int x, int y, int n)//прорисовка попал или мимо
        {
            Graphics gr = e.Graphics;
            Brush br1 = Brushes.Red;
            Brush br2 = Brushes.Black;
            int drawX = x / 20;
            int drawY = y / 20;
            if (n == 2)
            {
                gr.FillRectangle(br1, drawX * 20 + 1, drawY * 20 + 1, 19, 19);
            }
            else if (n == 3)
            {
                gr.FillEllipse(br2, (drawX * 20 + 5), (drawY * 20 + 5), 10, 10);
            }
        }

        public int indexStr(int x, int y)//определение индекс элемента строки
        {
            int n;
            int drawX = x / 20;
            int drawY = y / 20;
            n = drawY * 10 + drawX;
            return n;
        }
    }
}
